Error processing SSI file
LEADTOOLS (Leadtools assembly)

Show in webframe

SetYUVData(Byte[],Int32,Int32,RasterYUVFormat) Method








Buffer that contains the YUV data.
The zero-based index into the buffer where the set operation should start.
Size of the data buffer pointed to by buffer. If this value is incorrect, this method will throw an exception.
Specifies the YUV data format.
Updates the image data using the YUV data from an input buffer. The YUV data is converted to grayscale/BGR before being set in the RasterImage.
Syntax
'Declaration
 
Public Overloads Sub SetYUVData( _
   ByVal buffer() As Byte, _
   ByVal bufferIndex As Integer, _
   ByVal bufferCount As Integer, _
   ByVal yuvFormat As RasterYUVFormat _
) 
'Usage
 
Dim instance As RasterImage
Dim buffer() As Byte
Dim bufferIndex As Integer
Dim bufferCount As Integer
Dim yuvFormat As RasterYUVFormat
 
instance.SetYUVData(buffer, bufferIndex, bufferCount, yuvFormat)
 function Leadtools.RasterImage.SetYUVData(Byte[],Int32,Int32,RasterYUVFormat)( 
   buffer ,
   bufferIndex ,
   bufferCount ,
   yuvFormat 
)

Parameters

buffer
Buffer that contains the YUV data.
bufferIndex
The zero-based index into the buffer where the set operation should start.
bufferCount
Size of the data buffer pointed to by buffer. If this value is incorrect, this method will throw an exception.
yuvFormat
Specifies the YUV data format.
Remarks

This function is designed to be used mainly for use in mobile imaging to facilitate filling a BITMAPHANDLE structure using live frames from the mobile device's camera.

The function ignores the image's view perspective, so it must match the orientation of the YUV buffer. In most cases, the YUV buffer is top-to-bottom, so the ViewPerspective should be TopLeft. If the YUV buffer is flipped, the ViewPerspective should be BottomLeft, so it will be automatically flipped before saving or painting.

The YUV data should contain studio video YUV, with Y values ranging from 16 to 235 and U,V values ranging from 16 to 240. Values outside this range are clipped: values below 16 will be considered as if they were 16. Y values above 235 will be clipped to 235, U/V values above 240 will be clipped to 240.

The only supported bits per pixel are 8, 24 and 32.

Example

Gets the image data in YUV format. The format is indicated by yuvFormat. The data is returned as a byte array. The data starts at index 0 and is equal to the size of the array.

Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Core
Imports Leadtools.ImageProcessing.Color
Imports Leadtools.Controls
Imports Leadtools.Dicom
Imports Leadtools.Drawing
Imports Leadtools.Svg

Public Shared Sub SetYUVDataExample()
   Dim fileName As String = Path.Combine(Common.ImagesPath.Path, "nv21.bin")
   Using codecs As New RasterCodecs
      Using image As New RasterImage(RasterMemoryFlags.Conventional, 1920, 1080, 24, RasterByteOrder.Bgr, RasterViewPerspective.TopLeft, Nothing, Nothing, 0)
         Using yuvFile As FileStream = File.OpenRead(fileName)
            Dim size As Integer = CInt(1920 * 1080 * 3 / 2)
            Dim yuvBuffer As Byte() = New Byte(size) {}
            yuvFile.Read(yuvBuffer, 0, size)

            image.SetYUVData(yuvBuffer, 0, size, RasterYUVFormat.NV21)

            codecs.Save(image, Path.Combine(Common.ImagesPath.Path, "nv21_net.jpg"), RasterImageFormat.Jpeg, 0)

            Dim yuvBuffer2 As Byte() = New Byte(size) {}
            image.GetYUVData(RasterYUVFormat.YV12, yuvBuffer2, 0, yuvBuffer2.Length)

            image.SetYUVData(yuvBuffer2, 0, yuvBuffer2.Length, RasterYUVFormat.YV12)

            codecs.Save(image, Path.Combine(Common.ImagesPath.Path, "nv21_net_2.jpg"), RasterImageFormat.Jpeg, 0)

            System.Diagnostics.Debug.WriteLine("Save succeeded")
         End Using
      End Using
   End Using
End Sub
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Core;
using Leadtools.ImageProcessing.Color;
using Leadtools.Dicom;
using Leadtools.Drawing;
using Leadtools.Controls;
using Leadtools.Svg;

public static void SetYUVDataExample()
{
   string fileName = Path.Combine(ImagesPath.Path, "nv21.bin");
   using (RasterCodecs codecs = new RasterCodecs())
   {
      using (RasterImage image = new RasterImage(RasterMemoryFlags.Conventional, 1920, 1080, 24, RasterByteOrder.Bgr, RasterViewPerspective.TopLeft, null, null, 0))
      {
         using (FileStream yuvFile = File.OpenRead(fileName))
         {
            int size = 1920 * 1080 * 3 / 2;
            Byte[] yuvBuffer = new Byte[size];
            yuvFile.Read(yuvBuffer, 0, size);

            image.SetYUVData(yuvBuffer, 0, size, RasterYUVFormat.NV21);

            codecs.Save(image, Path.Combine(ImagesPath.Path, "nv21_net.jpg"), RasterImageFormat.Jpeg, 0);

            Byte[] yuvBuffer2 = new byte[size];
            image.GetYUVData(RasterYUVFormat.YV12, yuvBuffer2, 0, yuvBuffer2.Length);

            image.SetYUVData(yuvBuffer2, 0, yuvBuffer2.Length, RasterYUVFormat.YV12);

            codecs.Save(image, Path.Combine(ImagesPath.Path, "nv21_net_2.jpg"), RasterImageFormat.Jpeg, 0);

            System.Diagnostics.Debug.WriteLine("Save succeeded");
         }
      }
   }
}
Requirements

Target Platforms

See Also

Reference

RasterImage Class
RasterImage Members
Overload List

Error processing SSI file